package br.com.webhomesites.padrao.presenter;

import br.com.webhomesites.padrao.model.GrupoProdutoDAO;
import br.com.webhomesites.padrao.view.BuscarGrupoProdutoView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

public class BuscarGrupoProdutoPresenterActionListeners {
    
    static class BuscarFocusListener implements FocusListener {
        
        private BuscarGrupoProdutoPresenter presenter;
        private BuscarGrupoProdutoView buscarGrupoProdutoView;
        
        public BuscarFocusListener(BuscarGrupoProdutoPresenter presenter) {
            this.presenter = presenter;
            buscarGrupoProdutoView = presenter.getBuscarGrupoProdutoView();
        }
        
        @Override
        public void focusGained(FocusEvent e) {
            GrupoProdutoDAO grupoProdutoDAO = new GrupoProdutoDAO();
            
            if (e.getSource() == presenter.getBuscarGrupoProdutoView().getComboCodigoJCombo()) {
                
                if (presenter.getBuscador() == null) {
                    System.out.println("Verdadeiro");
                    //buscarGrupoProdutoView.setListaCodigo(grupoProdutoDAO.findByTipo("C"));
                } else {
                    System.out.println("Falso");
                    buscarGrupoProdutoView.setListaCodigo(grupoProdutoDAO.findAll());
                    buscarGrupoProdutoView.setListaDescricao(grupoProdutoDAO.findAll());
                    
                }
                
                //buscarGrupoProdutoView.comboDescricaoRemoveAllItens();
                //buscarGrupoProdutoView.comboSerieRemoveAllItens();
                
                presenter.setTipoBusca(presenter.POR_CODIGO_STRATEGY);
                
            } else if (e.getSource() == presenter.getBuscarGrupoProdutoView().getComboDescricaoJCombo()) {
                
                if (presenter.getBuscador() == null) {
                    //buscarGrupoProdutoView.setListaDescricao(grupoProdutoDAO.findByTipo("C"));
                } else {
                    buscarGrupoProdutoView.setListaDescricao(grupoProdutoDAO.findAll());
                }
                
                //buscarGrupoProdutoView.comboCodigoRemoveAllItens();
                //buscarGrupoProdutoView.comboSerieRemoveAllItens();
                
                presenter.setTipoBusca(presenter.POR_DESCRICAO_STRATEGY);
                
            } 
            
        }
        
        @Override
        public void focusLost(FocusEvent e) {
            if (e.getSource() == presenter.getBuscarGrupoProdutoView().getComboCodigoJCombo()) {
                
                //buscarGrupoProdutoView.comboDescricaoRemoveAllItens();
                //buscarGrupoProdutoView.comboSerieRemoveAllItens();
                
            } else if (e.getSource() == presenter.getBuscarGrupoProdutoView().getComboDescricaoJCombo()) {
                
                //buscarGrupoProdutoView.comboCodigoRemoveAllItens();
                //buscarGrupoProdutoView.comboSerieRemoveAllItens();
                
            } 
        }
    }
    
    static class BuscarActionListener implements ActionListener {
        
        private BuscarGrupoProdutoPresenter presenter;
        
        public BuscarActionListener(BuscarGrupoProdutoPresenter presenter) {
            this.presenter = presenter;            
        }
        
        @Override
        public void actionPerformed(ActionEvent e) {
            presenter.getTipoBusca().execute();            
            presenter.getBuscarGrupoProdutoView().dispose();
        }
    }
    
    static class SairActionListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent evt) {
            System.exit(0);
        }
    }
}
